package com.ssy.lingxi.product.api.model.request.commodity;

import lombok.Data;

import javax.validation.constraints.NotEmpty;
import java.util.List;

/**
 * 商品实体类
 * @author jw.chen
 * @version 2.0.0
 * @date 2020/6/28
 */
@Data
public class CommodityAddRequest {
    /**
     * 主键id
     */
    private Long id;

    /**
     * 会员分类id
     */
    @NotEmpty(message = "分类id不能为空")
    private Long customerCategoryId;

    /**
     * 品牌id
     */
    @NotEmpty(message = "品牌id不能为空")
    private Long brandId;

    /**
     * 商品名称
     */
    @NotEmpty(message = "商品名称不能为空")
    private String name;

    /**
     * 商品标语
     */
    @NotEmpty(message = "商品标语不能为空")
    private String slogan;

    /**
     * 商品卖点
     */
    private String[] sellingPoint;

    /**
     * 是否不限制区域
     */
    private Boolean isAllArea;

    /**
     * 归属地市
     */
    private List<CommodityAreaRequest> commodityAreaList;

    /**
     * 商品属性
     */
    @NotEmpty(message = "商品属性不能为空")
    private List<CommodityAttributeRequest> commodityAttributeList;

    /**
     * 计量单位id
     */
    @NotEmpty(message = "计量单位id不能为空")
    private Long unitId;

    /**
     * 计量单位
     */
    @NotEmpty(message = "计量单位不能为空")
    private String unitName;

    /**
     * 副价格计量单位id
     */
    private Long subUnitId;

    /**
     * 副价格计量单位
     */
    private String subUnitName;

    /**
     * 最小起订
     */
    @NotEmpty(message = "最小起订不能为空")
    private Double minOrder;

    /**
     * 产品定价
     */
    @NotEmpty(message = "产品定价不能为空")
    private Integer priceType;

    /**
     * 商品类型 CommodityS2BTypeEnum - 1:自营商品; 2:上游供应商品
     */
    @NotEmpty(message = "商品类型不能为空")
    private Integer type;

    /**
     * 商品来源-CommodityS2BSourceEnum: 1-上游供应商品; 2-下游销售商品;
     * S2B选择上游供应商品/下游销售商品功能赋值 其他渠道则为空
     */
    private Integer sourceType;

    /**
     * 是否允许使用会员折扣价购买
     */
    @NotEmpty(message = "产品定价不能为空")
    private Boolean isMemberPrice;

    /**
     * 税率
     */
    private Double taxRate = 0d;

    /**
     * 是否所有属性共用图片
     */
    private Boolean isAllAttributePic;

    /**
     * 是否允许修改商品规格属性
     */
    private Boolean isUpdateAttribute;

    /**
     * 商品单价和图片
     */
    @NotEmpty(message = "商品单价和图片不能为空")
    private List<UnitPriceAndPicRequest> unitPriceAndPicList;

    /**
     * 是否跨境商品
     */
    private Boolean isCrossBorder = false;

    /**
     * 送货周期
     */
    private Integer sendCycle;

    /**
     * 商品描述
     */
    private CommodityRemarkRequest commodityRemark;

    /**
     * 物流信息
     */
    private LogisticsRequest logistics;

    /**
     * 是否开发票
     */
    private Boolean isInvoice;

    /**
     * 唛头
     */
    private String marks;

    /**
     * 包装清单
     */
    private String packing;

    /**
     * 售后服务
     */
    private String afterService;

    /**
     * SEO优化: title
     */
    private String title;

    /**
     * SEO优化: description
     */
    private String description;
    /**
     * SEO优化: keywords
     */
    private String keywords;

    /**
     * 会员id
     */
    private Long memberId;

    /**
     * 会员名称
     */
    private String memberName;

    /**
     * 会员角色id
     */
    private Long memberRoleId;

    /**
     * 会员角色名称
     */
    private String memberRoleName;

    /**
     * 会员用户id
     */
    private Long userId;

    /**
     * 会员用户名称
     */
    private String userName;
}
